package com.redoor.app.stake.basicdata.service;

import com.redoor.app.stake.basicdata.model.BaseCharger;
import com.redoor.app.stake.basicdata.model.BaseChargerCriteria;
import com.redoor.app.stake.basicdata.model.serviceModel.BaseChargerServiceBean;
import com.redoornetwork.framework.mybatis.service.Service;
import com.yotouch.app.stake.model.Charger;

import java.util.List;

/**
 * Created by wangjunlei on 2018-02-12 10:08:10.
 */
public interface BaseChargerService {

    /**
     * 统计充电枪数量
     * @param criteria
     * @return
     */
    public int queryChargersTotal(BaseChargerCriteria criteria);

    /**
     * 根据查询条件分页查询充电枪列表
     * @param criteria 查询条件
     * @return List<BaseCharger>
     */
    public List<BaseChargerServiceBean> queryChargers(BaseChargerCriteria criteria);

    /**
     * 根据充电桩主键查找枪数据
     * @param stakeUuid
     * @return
     */
    public List<BaseChargerServiceBean> queryChargersByStakeUuid(String stakeUuid);

    /**
     * 根据主键uuid查询充电枪实体
     * @param uuid
     * @return
     */
    public BaseCharger getChargerByUuid(String uuid);

    /**
     * 修改充电枪实体
     * @param charger
     * @return
     */
    public int updateCharger(BaseCharger charger);

    /**
     * 创建充电枪
     * @param charger
     * @return
     */
    public int insertCharger(BaseCharger charger);

    /**
     * 根据uuid删除充电枪，假删除
     * @param uuid
     * @return
     */
    public int deleteChargerByUuid(String uuid);


    //-------------------------------------------------------//
    //------------------------HSF接口------------------------//
    //-------------------------------------------------------//


    /**
     * 统计国网桩数量
     * @return
     */
    public int sgccTotalCount();

    /**
     * 分页查询国网桩数据
     * @return
     */
    public List<Charger> sgccCharger(int offset, int limit);

    /**
     * 根据枪主键查询
     * @param uuid
     * @return
     */
    public Charger getChargerHsf(String uuid);

    /**
     * 根据枪主键查询
     * @param stakeNo 桩编号
     * @param chargerNo 枪编号
     * @return
     */
    public Charger getChargerHsf(String stakeNo, String chargerNo);

    /**
     * 根据停车区ID获取充电枪列表
     * @param parkingAreaUuid
     * @return
     */
    public List<Charger> listByParkingArea(String parkingAreaUuid);

    /**
     * 根据桩编号查询所有枪
     * @param stakeNo
     * @return
     */
    public List<Charger> listByStakeNo(String stakeNo);

    /**
     * 获取充电枪数据
     * @param criteria
     * @return
     */
    public List<Charger> hsfChargers(BaseChargerCriteria criteria);

    /**
     * 获取充电枪数量
     * @param criteria
     * @return
     */
    public int hsfChargersCount(BaseChargerCriteria criteria);

}
